Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour Seoul Challenger Wimbledon - London EFG Swiss Open - Gstaad Porto Challenger Generali Open - Kitzbuhel Western & Southern Open - Cincinnati Winston-Salem Open - Winston-Salem Mallorca Challenger U.S. Open - New York Davis Cup, Group B, Manchester Malaga Challenger Alicante Challenger Orleans Challenger Mouilleron-Le-Captif Challenger Ismaning Challenger Hamburg Challenger Swiss Indoors Basel - Basel Brest Challenger Matsuyama Challenger Sofia Open - Sofia Hong Kong Tennis Open - Hong Kong Australian Open - Melbourne Manama Challenger Ottignies-Louvain-la-Neuve Challenger BMW Open - Munich Davis Cup, World Group, Q, NED-SUI 3-2 Hamburg Challenger Lugano Challenger Mexico City Challenger Ostrava Challenger Turin Challenger San Luis Potosi Challenger M25 Vale do Lobo M25 Loule Oeiras 3 Challenger Madrid Challenger Millennium Estoril Open - Estoril M25 Valldoreix Libema Open - 's-Hertogenbosch Surbiton Challenger M25 Sabadell Oeiras 4 Challenger French Open - Paris M25 Idanha-a-Nova Mauthausen Challenger M25 Mungia-Laukariz M25 Elvas M25 Satu Mare M25 Setubal Zug Challenger M25 Castelo Branco M25 Idanha-a-Nova EFG Swiss Open - Gstaad Grodzisk Mazowiecki Challenger Wimbledon - London M25 Roda de Bara Salzburg Challenger M25 Bakio M25 Porto U.S. Open - New York Manacor Challenger Dobrich 2 Challenger Porto 2 Challenger Orleans Challenger Lisbon Challenger Villena Challenger Braga Challenger BNP Paribas Nordic Open - Stockholm M25 Sintra M25 Sintra M25 Monastir Bratislava 2 Challenger Moselle Open - Metz M25 Vila Real de Santo Antonio Oeiras 2 Challenger M25 Faro Mexico City Challenger M25 Vila Real de Santo Antonio M25 Vale do Lobo Oeiras 3 Challenger M25 Setubal M25 Vale do Lobo Grodzisk Mazowiecki Challenger Maia Challenger Hong Kong Tennis Open - Hong Kong Oeiras 1 Challenger Australian Open - Melbourne Turin Challenger Brasov Challenger Milan Challenger Tampere Challenger Zug Challenger Morelia Challenger Cuernavaca Challenger Zug Challenger Cassis Challenger Wimbledon - London Internazionali BNL d'Italia - Rome Grodzisk Mazowiecki Challenger French Open - Paris Boss Open - Stuttgart Birmingham Challenger Porto 2 Challenger Nottingham 2 Challenger Poznan Challenger Iasi Challenger EFG Swiss Open - Gstaad Bunschoten Challenger Porto Challenger U.S. Open - New York Sofia 2 Challenger Manacor Challenger Todi Challenger Istanbul Challenger Seville Challenger Lisbon Challenger Orleans Challenger Braga Challenger Almaty Open - Almaty Shenzhen Challenger Swiss Indoors Basel - Basel Portugal F2 Portugal F4 Portugal F5 Portugal F3 Spain F25 Portugal F4 Portugal F5 Brazil F31 Brazil F32 Portugal F2 Portugal F3 Portugal F4 Egypt F2 Egypt F3 Egypt F4 Portugal F5 Portugal F6 Portugal F7 Spain F26 Spain F27 Spain F33 Portugal F9 Portugal F10 Portugal F11 Egypt F32 Egypt F33 Spain F41 Spain F42 Turkey F49 Turkey F50 Portugal F1 Portugal F2 Portugal F3 Turkey F7 Switzerland F1 Turkey F8 Switzerland F2 Turkey F9 Portugal F4 Portugal F5 Portugal F6 Belgium F2 Belgium F3 Belgium F4 Belgium F5 Spain F21 Switzerland F3 Romania F2 Switzerland F4 Romania F13 Portugal F8 Portugal F9 Turkey F35 Portugal F10 Turkey F36 Portugal F11 Turkey F42 Turkey F43 Tunisia F3 Tunisia F4 Italy F2 Switzerland F1 Portugal F3 Switzerland F2 Morocco F2 Morocco F3 Italy F5 Italy F6 Italy F7 Portugal F4 Portugal F7 Mozambique F1 Italy F13 Mozambique F2 Spain F18 Austria F1 Switzerland F3 Switzerland F4 Belgium F13 Switzerland F5 Spain F28 Italy F31 Egypt F36 Italy F32 Egypt F37 Italy F33 Egypt F38 Egypt F39 Turkey F5 Switzerland F1 Turkey F6 Switzerland F2 Turkey F7 Portugal F3 Egypt F9 Italy F3 Egypt F10 Greece F1 Greece F2 Greece F3 France F8 Italy F9 Zimbabwe F1 Czech Republic F4 Zimbabwe F2 Zimbabwe F3 Austria F2 France F16 Portugal F1 Switzerland F3 Switzerland F4 Romania F15 Switzerland F5 Germany F14 Norway F1 Norway F2 Turkey F47 Czech Republic F11 Turkey F48 Czech Republic F12 Egypt F1 (Sharm El Sheikh) Great Britain F1 (Glasgow) Switzerland F1 (Oberentfelden) Egypt F4 (Sharm El Sheikh) Switzerland F2 (Bellevue) Egypt F5 (Sharm El Sheikh) Egypt F6 (Sharm El Sheikh) Greece F1 (Heraklion) Greece F2 (Heraklion) Greece F3 (Heraklion) Portugal F5 (Quinta Da Marinha) Kazakhstan F3 (Shymkent) Portugal F6 (Porto) France F8 (La Grande Motte) Portugal F7 (Carcavelos) France F9 (Angers) France F10 (Grasse) Ukraine F1 (Cherkassy) Ukraine F2 (Cherkassy) Romania F2 (Bacau) Singapore F1 (Singapore) Singapore F2 (Singapore) Singapore F3 (Singapore) Tunisia F22 (Hammamet) Italy F19 (Basilicanova) Austria F1 (Telfs) Portugal F10 (Torres Vedras) Belgium F4 (Lasne) Portugal F11 (Povoa de Varzim) Portugal F12 (Idanha-A-Nova) Portugal F13 (Idanha-A-Nova) Switzerland F3 (Collonge-Bellerive) Switzerland F4 (Neuchatel) Switzerland F5 (Sion) Tunisia F27 (Hammamet) Tunisia F28 (Hammamet) France F22 (Nevers) Tunisia F29 (Hammamet) Germany F14 (Oberhaching) Tunisia F30 (Hammamet) Greece F7 (Heraklion) Mexico F5 (Campeche) Mexico F6 (Monterrey) Mexico F7 (Metepec) Mexico F8 (Cancun) France F3 (Veigy-Foncenex) Switzerland F1 (Oberentfelden) Switzerland F2 (Bellevue) Portugal F1 (Vale Do Lobo) Portugal F3 (Loule) Portugal F4 (Quinta Do Lago) Portugal F5 (Vilamoura) France F6 (Villers Les Nancy) Portugal F6 (Lisbon) Portugal F7 (Porto) Portugal F8 (Cascais) Czech Republic F3 (Most) USA F13 (Winston-Salem) Tunisia F23 (Hammamet) USA F15 (Winston-Salem) USA F17 (Tulsa) Canada F5 (Saskatoon) Portugal F14 (Sintra) Portugal F15 (Sintra) Switzerland F3 (Sion) Finland F4 (Helsinki) M25 Nussloch M25 Bolton M25 Almaty M25 Tavira M15 Bad Salzdetfurth M25 Saint Dizier Portugal F5 Sao Leopoldo Challenger Guimaraes Challenger Segovia Challenger Itajai Challenger Sao Paulo Challenger Santos Challenger Segovia Challenger Ortisei Challenger Casablanca Challenger New Delhi Challenger Kolkata Challenger Mersin Challenger Eskisehir Challenger Todi Challenger Tampere Challenger Segovia Challenger Manerbio Challenger Campinas Challenger Porto Alegre Challenger Sao Paulo Challenger Bangkok Challenger Bangkok Challenger Manila Challenger Napoli Challenger Barletta Challenger Turin Challenger Rome Challenger Samarkand Challenger Mestre Challenger Caltanissetta Challenger Perugia Challenger Bastad Challenger Poznan Challenger Tampere Challenger Prague Challenger Cordenons Challenger Manerbio Challenger Bangkok Challenger Lisbon Challenger Milan Challenger Scheveningen Challenger Ismaning Challenger Bergamo Challenger Leon Challenger Braga Challenger Mestre Challenger Blois Challenger Winnipeg Challenger Como Challenger Cassis Challenger Zhangjiagang Challenger Shanghai Challenger Kaohsiung Challenger Tiburon Challenger Stockton Challenger Almaty Challenger Fairfield Challenger Tashkent Challenger Bratislava Challenger Bangalore Challenger Andria Challenger Pune Challenger Noumea Challenger Canberra Challenger Budapest Challenger Morelos Challenger Lille Challenger Sophia Antipolis Challenger Taipei City Challenger San Luis Potosi Challenger Leon Challenger Puerto Vallarta Challenger Aix En Provence Challenger Braga Challenger Lisbon Challenger Jerusalem Challenger Vicenza Challenger Almaty Challenger Shymkent Challenger Bratislava Challenger Fergana Challenger Milan Challenger Recanati Challenger Perugia Challenger Amersfoort Challenger Prague Challenger Sopot Challenger Manerbio Challenger Meerbusch Challenger L'Aquila Challenger Baotou Challenger Como Challenger Jinan Challenger Cassis Challenger Kaohsiung Challenger Nur-Sultan Challenger Ningboo Challenger Ismaning Challenger Liuzhou Challenger Shenzhen Challenger Eckental Challenger Helsinki Challenger Bengalaru Challenger Bergamo Challenger Nur-Sultan Challenger Prague II Challenger Ostrava Challenger Prostejov Challenger Iasi Challenger Sibiu Challenger Split Challenger Lisbon Challenger Istanbul Challenger Ismaning Challenger Hamburg Challenger Eckental Challenger Parma Challenger Sao Paulo Challenger Maia Challenger Istanbul Challenger Quimper Challenger Quimper 2 Challenger Potchefstroom 1 Challenger Potchefstroom 2 Challenger Nur-Sultan 1 Challenger Nur-Sultan 2 Challenger Biella 3 Challenger Biella 4 Challenger Prague Challenger Heilbronn Challenger Zagreb Challenger Oeiras 3 Challenger Biella 7 Challenger Nottingham 1 Challenger Bratislava Challenger Porto Challenger Salzburg-Anif Challenger Segovia Challenger Cordenons Challenger Como Challenger Mallorca Challenger Tulln Challenger Kyiv Challenger Biel Challenger Braga Challenger Lisbon Challenger Sibiu Challenger Mouilleron-Le-Captif Challenger Alicante Challenger Napoli 2 Challenger Brest Challenger Ismaning Challenger Eckental Challenger Tenerife Challenger Bratislava Challenger Ortisei Challenger Helsinki Challenger Traralgon Challenger Forli 3 Challenger Quimper Challenger Bengalaru 1 Challenger Cherbourg Challenger Biel Challenger Lugano Challenger Mexico City Challenger San Luis Potosi Challenger Aguascalientes Challenger Heilbronn Challenger Tunis Challenger Troisdorf Challenger Surbiton Challenger Poznan Challenger Nottingham Challenger Malaga Challenger Porto Challenger Iasi Challenger Tampere Challenger Zug Challenger San Benedetto Challenger Meerbusch Challenger Vancouver Challenger Banja Luka Challenger Toulouse Challenger Seville Challenger Braga Challenger Lisbon Challenger Alicante Challenger St. Tropez Challenger Hamburg Challenger Yokohama Challenger Matsuyama Challenger Kobe Challenger Yokkaichi Challenger Ottignies-Louvain-la-Neuve Challenger Chennai Challenger Bengaluru Challenger Pune Challenger Phoenix Challenger St. Brieuc Challenger Mexico City Challenger Girona Challenger Madrid Challenger Oeiras 3 Challenger Ostrava Challenger Aix En Provence Challenger Francavilla Challenger Oeiras 4 Challenger Troisdorf Challenger Prostejov Challenger Suzhou Challenger Estoril Open - Estoril Estoril Open - Estoril Estoril Open - Estoril Portugal Open - Oeiras Portugal Open - Oeiras Grand Prix Hassan II - Casablanca Millennium Estoril Open - Estoril Millennium Estoril Open - Estoril Millennium Estoril Open - Estoril Suisse Open - Gstaad Millennium Estoril Open - Estoril Swiss Open - Gstaad European Open - Antwerp Geneva Open - Geneva Turkish Airlines Open Antalya - Antalya SkiStar Swedish Open - Bastad Swiss Open - Gstaad Generali Open - Kitzbuhel Swiss Indoors Basel - Basel Tata Open Maharashtra - Pune Generali Open - Kitzbuhel Sofia Open - Sofia Murray River Open - Melbourne Open 13 Provence - Marseille Abierto Mexicano Telcel - Acapulco Barcelona Open Banc Sabadell - Barcelona Millennium Estoril Open - Estoril Gonet Geneva Open - Geneva cinch Championships - London Nordea Open - Bastad Swiss Open - Gstaad Sardegna Open - Cagliari Open Sud de France - Montpellier Open 13 Provence - Marseille Noventi Open - Halle Nordea Open - Bastad Swiss Open - Gstaad Winston-Salem Open - Winston-Salem Astana Open - Astana Sofia Open - Sofia European Open - Antwerp Swiss Indoors Basel - Basel San Diego Open - San Diego United Cup - Australia Adelaide International 2 - Adelaide Open Sud de France - Montpellier ABN AMRO World Tennis Tournament - Rotterdam Open 13 Provence - Marseille Dubai Duty Free Tennis Championships - Dubai Millennium Estoril Open - Estoril BMW Open - Munich Gonet Geneva Open - Geneva Libema Open - 's-Hertogenbosch Spain F30 Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo National Bank Open - Montreal Rolex Paris Masters - Paris BNP Paribas Open - Indian Wells Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo Mutua Madrid Open - Madrid Shanghai Rolex Masters - Shanghai Wimbledon - London Australian Open - Melbourne French Open - Paris Australian Open Qualifying - Doha Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Davis Cup, Group I, 1R, SLO-POR 3-2 Davis Cup, Group I, PO, RUS-POR 4-1 Davis Cup, Group II, 2R, POR-FIN 4-1 Davis Cup, Group I, 1R, POR-ISR 5-0 Davis Cup, World Group, 1R, KAZ-SUI 4-1 Davis Cup, World Group, PO, SUI-SWE 2-3 Davis Cup, World Group, QR, SUI-RUS 1-3 Davis Cup, World Group I, PO, LTU-POR 0-4 All Lower level tournaments Augsburg Challenger Porto Challenger Wimbledon (juniors) U.S. Open (juniors) Australian Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) Rothesay International - Eastbourne Swiss Indoors Basel - Basel Plava Laguna Croatia Open - Umag Swiss Indoors Basel - Basel Internazionali BNL d'Italia - Rome Davis Cup, Group I, 1R, ECU-SUI 2-3 Davis Cup, World Group, PO, GER-SUI 2-3 Davis Cup, Group I, 1R, SUI-IND 1-3 Davis Cup, Group II, 1R, POR-MAR 4-1 Davis Cup, World Group I, 1R, SUI-PER 4-0